package models

import (
	"gorm.io/gorm"
)

// SysConfig 对应数据库表 sys_config
/*
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键，自增ID',
  `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT '' COMMENT '参数名称',
  `key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '数据键值',
  `value` text CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT '数据内容',
  `app_id` int(11) DEFAULT '0' COMMENT '数据归属',
*/
type SysConfig struct {
	gorm.Model
	ID        uint   `gorm:"primaryKey;autoIncrement;comment:主键，自增ID"`
	Name      string `gorm:"not null;default:'';comment:配置名称"`
	Key       string `gorm:"unique;not null;default:'';comment:配置键"`
	Value     string `gorm:"not null;default:'';comment:配置值"`
	AppID     int    `gorm:"default:0;comment:数据归属"`
	CreatedAt int64  `gorm:"autoCreateTime;comment:创建时间戳"` // 修改为 int64 类型
	UpdatedAt int64  `gorm:"autoUpdateTime;comment:更新时间戳"` // 修改为 int64 类型
}

type SysConfigList struct {
	ID        uint   `json:"id"`
	Name      string `json:"name"`
	Key       string `json:"key"`
	Value     string `json:"value"`
	AppID     int    `json:"app_id"`
	CreatedAt string `json:"created_at"`
	UpdatedAt string `json:"updated_at"`
}

type SysConfigCreate struct {
	Name  string `json:"name"`
	Key   string `json:"key"`
	Value string `json:"value"`
	AppID int    `json:"app_id"`
}

type SysConfigUpdate struct {
	ID    uint   `json:"id"`
	Name  string `json:"name"`
	Key   string `json:"key"`
	Value string `json:"value"`
	AppID int    `json:"app_id"`
}

// TableName 设置表名为 sys_config
func (SysConfig) TableName() string {
	return "sys_config"
}
